<!DOCTYPE html>
<html lang="en" class="no-js">
  <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/clipboard@1/dist/clipboard.min.js"></script>
  <head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.55.6" />

<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">

<link rel="alternate" type="application/rss&#43;xml" href="/v0.5/index.xml">

<link rel="shortcut icon" href="/v0.5/assets/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/v0.5/assets/favicons/apple-touch-icon.png" sizes="180x180">
<link rel="icon" type="image/png" href="/v0.5/assets/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/v0.5/assets/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/v0.5/assets/favicons/android-144x144.png" sizes="36x36">
<link rel="icon" type="image/png" href="/v0.5/assets/favicons/android-144x144.png" sizes="48x48">
<link rel="icon" type="image/png" href="/v0.5/assets/favicons/android-144x144.png" sizes="72x72">
<link rel="icon" type="image/png" href="/v0.5/assets/favicons/android-144x144.png" sizes="96x196">
<link rel="icon" type="image/png" href="/v0.5/assets/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/v0.5/assets/favicons/android-192x192.png"sizes="192x192">

<title>Extensibilidad: Proveedores | Meshery</title>
<meta property="og:title" content="Extensibilidad: Proveedores" />
<meta property="og:description" content="Meshery is the open source, cloud native management plane that enables the adoption, operation, and management of Kubernetes, any service mesh, and their workloads.
" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://localhost:4000" />
<meta property="og:site_name" content="http://localhost:4000" />

<meta itemprop="name" content="Extensibilidad: Proveedores">
<meta itemprop="description" content="Meshery is the open source, cloud native management plane that enables the adoption, operation, and management of Kubernetes, any service mesh, and their workloads.
">

<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Extensibilidad: Proveedores"/>
<meta name="twitter:description" content="Meshery is the open source, cloud native management plane that enables the adoption, operation, and management of Kubernetes, any service mesh, and their workloads.
"/>

<link rel="stylesheet" href="/v0.5/assets/css/main.css">
<link rel="stylesheet" href="/v0.5/assets/css/palette.css">
<link rel="stylesheet" href="/v0.5/assets/css/anchorjs.css">
<link rel="stylesheet" href="/v0.5/assets/css/sass.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.css">

<script
  src="https://code.jquery.com/jquery-3.3.1.min.js"
  integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
  crossorigin="anonymous"></script>
  <!-- Anchorjs included for adding hover anchor links to headings -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/4.2.2/anchor.min.js"></script>
  <script>  
  $(function() {
  /** AnchorJS options and selector */  
   anchors.options = {
      visible : 'hover',
      placement: 'left'
   };
   anchors.add('h1, h2, h3, h4, h5');
   });
   </script>
</head>
<style>

</style>
  <body class="td-section">
    <header>
  <nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
    <a class="navbar-brand" href="/v0.5/">
      <div class="navbar-logo">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 279.49 51.83"><defs><style>.cls-1{fill:#00d3a9}.cls-2{fill:#00b39f}.cls-3{fill:#fff}</style></defs><title>Asset 14</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><polygon points="26.68 12.21 26.68 24.59 37.4 18.38 26.68 12.21" class="cls-1"/><polygon points="26.68 27.18 26.68 39.62 37.5 33.43 26.68 27.18" class="cls-1"/><polygon points="25.13 24.51 25.13 12.32 14.54 18.39 25.13 24.51" class="cls-2"/><path d="M3.88,39.58a26,26,0,0,0,8.22,8.27v-13Z" class="cls-2"/><polygon points="25.13 39.56 25.13 27.27 14.51 33.42 25.13 39.56" class="cls-2"/><polygon points="13.64 47.07 24.4 40.92 13.64 34.7 13.64 47.07" class="cls-1"/><polygon points="38.24 47.14 38.24 34.79 27.5 40.93 38.24 47.14" class="cls-2"/><path d="M48.76,38.14A25.71,25.71,0,0,0,51.8,27L40.6,33.44Z" class="cls-2"/><polygon points="39.78 32.13 50.58 25.95 39.78 19.75 39.78 32.13" class="cls-1"/><polygon points="38.24 17.08 38.24 4.81 27.55 10.94 38.24 17.08" class="cls-2"/><polygon points="38.24 32.07 38.24 19.68 27.52 25.89 38.24 32.07" class="cls-2"/><polygon points="25.9 51.83 25.91 51.83 25.9 51.83 25.9 51.83" class="cls-2"/><polygon points="13.64 19.66 13.64 32.14 24.43 25.89 13.64 19.66" class="cls-1"/><path d="M25.13,0A25.75,25.75,0,0,0,13.75,3L25.13,9.55Z" class="cls-2"/><polygon points="13.64 4.72 13.64 17.13 24.44 10.93 13.64 4.72" class="cls-1"/><path d="M12.1,4a26,26,0,0,0-8.22,8.27L12.1,17Z" class="cls-2"/><path d="M38.17,3.07A25.8,25.8,0,0,0,26.68,0V9.65Z" class="cls-1"/><path d="M0,26.82A25.76,25.76,0,0,0,3.1,38.24l8.32-4.82Z" class="cls-1"/><path d="M3.1,13.58A25.67,25.67,0,0,0,0,24.94l11.44-6.55Z" class="cls-1"/><path d="M13.73,48.8a25.81,25.81,0,0,0,11.4,3V42.28Z" class="cls-2"/><path d="M48,12.28A25.91,25.91,0,0,0,39.78,4V17Z" class="cls-1"/><path d="M39.78,47.8A26,26,0,0,0,48,39.48l-8.21-4.73Z" class="cls-1"/><path d="M51.8,24.88a25.84,25.84,0,0,0-3.07-11.27l-8.24,4.77Z" class="cls-2"/><path d="M26.68,51.82a25.81,25.81,0,0,0,11.37-3L26.68,42.24Z" class="cls-1"/><polygon points="12.1 32.03 12.1 19.79 1.47 25.88 12.1 32.03" class="cls-2"/><polygon points="197.13 19 197.13 20.13 197.13 25.45 197.13 31.94 197.13 41.41 222.35 41.41 222.35 36.09 202.45 36.09 202.45 31.94 202.45 30.77 217.74 30.77 217.74 25.45 202.45 25.45 202.45 20.13 222.35 20.13 222.35 14.81 197.13 14.81 197.13 19" class="cls-3"/><polygon points="100.14 19 100.14 20.13 100.14 25.45 100.14 31.94 100.14 41.41 125.35 41.41 125.35 36.09 105.46 36.09 105.46 31.94 105.46 30.77 120.74 30.77 120.74 25.45 105.46 25.45 105.46 20.13 125.35 20.13 125.35 14.81 100.14 14.81 100.14 19" class="cls-3"/><path d="M160.26,34.46a6.61,6.61,0,0,1-.55,2.69,7,7,0,0,1-1.51,2.22A7.34,7.34,0,0,1,156,40.86a6.7,6.7,0,0,1-2.71.55H128.38v-5.6h24.89a1.35,1.35,0,0,0,1.35-1.35V32.29A1.33,1.33,0,0,0,153.27,31H135.36a6.78,6.78,0,0,1-2.69-.55,7.19,7.19,0,0,1-2.24-1.51,7,7,0,0,1-1.5-2.23,6.62,6.62,0,0,1-.55-2.7V21.8a6.75,6.75,0,0,1,.55-2.72,7,7,0,0,1,1.5-2.21,7.19,7.19,0,0,1,2.24-1.51,6.61,6.61,0,0,1,2.69-.55h24.9v5.64h-24.9a1.27,1.27,0,0,0-1,.39,1.31,1.31,0,0,0-.4,1V24a1.31,1.31,0,0,0,.4,1,1.27,1.27,0,0,0,1,.39h17.91a6.7,6.7,0,0,1,2.71.55,7.11,7.11,0,0,1,3.73,3.72,6.74,6.74,0,0,1,.55,2.71Z" class="cls-3"/><path d="M193.81,41.41h-5.07V31H169V41.41h-5.08V25.31h24.86V14.81h5.07ZM169,22.81h-5.08v-8H169Z" class="cls-3"/><polygon points="266.19 24.12 259.55 14.81 252.9 14.81 263.54 30.77 263.54 41.41 268.86 41.41 268.86 30.77 279.49 14.81 272.93 14.81 266.19 24.12" class="cls-3"/><path d="M231.4,19.88H245v5.53h-11v5.08h2.52l9.65,10.92h6.57l-9.65-10.92h3.76A4.13,4.13,0,0,0,251,26.36V18.94a4.13,4.13,0,0,0-4.13-4.13H226.19v26.6h5.32Z" class="cls-3"/><path d="M96.05,41.41H90.41V22a1.38,1.38,0,0,0-.13-.6,1.56,1.56,0,0,0-.33-.5,1.77,1.77,0,0,0-.5-.34,1.53,1.53,0,0,0-.6-.12H62.78V14.81H88.85a6.88,6.88,0,0,1,2.78.57,7.08,7.08,0,0,1,3.85,3.85A6.88,6.88,0,0,1,96.05,22Zm-27.63,0H62.78v-21l5.64-1.55Zm13.8,0H76.58v-18h5.64Z" class="cls-3"/></g></g></svg><span class="font-weight-bold" style="vertical-align: bottom"
          >Documentation</span
        >
      </div>
    </a>
    <div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
      <ul class="navbar-nav mt-2 mt-lg-0">
        <!-- 
			<li class="nav-item mr-4 mb-2 mb-lg-0">
        <a class="nav-link" href="https://github.com/meshery/meshery" target="_blank"><span>GitHub</span></a>
      </li>  -->

        <!-- Internal links -->
         
            <li class="nav-item mr-4 mb-2 mb-lg-0">
              <a
                class="nav-link"
                href="/v0.5/installation/quick-start"
                ><span>Quick Start</span></a
              >
            </li>
         
            <li class="nav-item mr-4 mb-2 mb-lg-0">
              <a
                class="nav-link"
                href="https://meshery.io"
                ><span>Site</span></a
              >
            </li>
         
            <li class="nav-item mr-4 mb-2 mb-lg-0">
              <a
                class="nav-link"
                href="https://meshery.io/community/#discussion-forums"
                ><span>Discuss</span></a
              >
            </li>
         
            <li class="nav-item mr-4 mb-2 mb-lg-0">
              <a
                class="nav-link"
                href="https://github.com/meshery/meshery"
                ><span>GitHub</span></a
              >
            </li>
        

        <!--Version Selector -->

        <select onchange="window.location=this.value" class="appearance-none flex-1 w-full px-0 py-1 placeholder-gray-900 tracking-wide focus:outline-none version-selector" name="versioningSelection" id="versioningSelection">
          <!-- <option value="">Versions</option> -->
          

          <!-- we get the version selected, and put it to the right option  --><option  value="/v0.5" class="nav-item mr-4 mb-2 mb-lg-0 text-black">
            <span>v0.5</span>
          </option>
          <!-- we get the version selected, and put it to the right option  --><option  value="/" class="nav-item mr-4 mb-2 mb-lg-0 text-black">
            <span>latest</span>
          </option>
          <!-- we get the version selected, and put it to the right option  --><option  value="/v0.4" class="nav-item mr-4 mb-2 mb-lg-0 text-black">
            <span>v0.4</span>
          </option>
          
          </select>
    
        </ul>
    </div>

    <!--Search Bar
    <div class="navbar-nav d-none d-lg-block"><input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off"></div>-->

    <!-- meshery-custom-begin

	<div class="navbar-nav d-none d-lg-block">
          <a class="gh-source" data-gh-source="github" href="https://github.com/meshery/meshery" title="Go to repository" data-md-state="done">
          <div class="gh-source__repository">
            <i class="fab fa fa-github fa-2x" style='padding-right:20px; float:left; margin-top:5px'></i>
            meshery/meshery
          <ul class="gh-source__facts"><li class="gh-source__fact" id='stars'></li><li id="forks" class="gh-source__fact"></li></ul></div></a>
        </div>
      </div>

meshery-custom-end -->
  </nav>
</header>

<!-- meshery-custom-begin

<script>
$(document).ready(function() {
  var url = "https://api.github.com/search/repositories?q=meshery/meshery";
  fetch(url, { 
      headers: {"Accept":"application/vnd.github.preview"}
  }).then(function(e) {
    return e.json()
  }).then(function(r) {
     console.log(r.items[0])
     stars = r.items[0]['stargazers_count']
     forks = r.items[0]['forks_count']
     $('#stars').text(stars + " Stars")
     $('#forks').text(forks + " Forks")
  });
});
</script>

meshery-custom-end -->

    <div class="container-fluid td-outer">
      <div class="td-main">
        <div class="row flex-xl-nowrap">
          <div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
          <div id="td-sidebar-menu" class="td-sidebar__inner">  
    <form class="td-sidebar__search d-flex align-items-center">
   <input type="search" class="form-control td-search-input fas fa-search" placeholder="&#xf002" aria-label="Search this site…" autocomplete="off">
      <button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
      </button>
    </form>  

    <nav class="collapse td-sidebar-nav pt-1 pl-3" id="td-section-nav">
      
    
    <ul class="td-sidebar-nav__section pr-md-3">
      
      
      <li class="td-sidebar-nav__section-title">
        <a  href="/v0.5/installation/quick-start" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">🚀 Quick Start</a>
      </li>
          
    </ul>
    
    <ul class="td-sidebar-nav__section pr-md-3">
      
      
      <li class="td-sidebar-nav__section-title">
        <a  href="/v0.5/project" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">🗺 Overview</a>
      </li>
      
        <ul>
          <li class="collapse show" id="overview">
              <ul class="td-sidebar-nav__section pr-md-3">
                
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/project/community" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Community</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/project/contributing" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Contributing ↆ</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/project/releases" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Releases</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/project/build-and-release" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Build & Release (CI)</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/project/security-vulnerabilities" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Vulnerabilities</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/project/faq" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">FAQ</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/installation/platforms" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Supported Platforms ↆ</a>
                </li>
                
              
            </ul>
        </ul>  
          
    </ul>
    
    <ul class="td-sidebar-nav__section pr-md-3">
      
      
      <li class="td-sidebar-nav__section-title">
        <a  href="/v0.5/concepts" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">🧠 Concepts</a>
      </li>
      
        <ul>
          <li class="collapse show" id="concepts">
              <ul class="td-sidebar-nav__section pr-md-3">
                
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/concepts/architecture" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Architecture</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/concepts/architecture/adapters" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Adapters</a>
                </li>
                
              
            </ul>
        </ul>  
          
    </ul>
    
    <ul class="td-sidebar-nav__section pr-md-3">
      
      
      <li class="td-sidebar-nav__section-title">
        <a  href="/v0.5/functionality" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">⚙️ Functionality</a>
      </li>
      
        <ul>
          <li class="collapse show" id="functionality">
              <ul class="td-sidebar-nav__section pr-md-3">
                
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/functionality/application-management" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Application Management</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/functionality/lifecycle-management" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Lifecycle Management</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/functionality/pattern-management" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Pattern Management</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/functionality/performance-management" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Performance Management</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/functionality/service-mesh-interface" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Service Mesh Interface (SMI) Conformance</a>
                </li>
                
              
            </ul>
        </ul>  
          
    </ul>
    
    <ul class="td-sidebar-nav__section pr-md-3">
      
      
      <li class="td-sidebar-nav__section-title">
        <a  href="/v0.5/service-meshes" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">🦾 Service Meshes</a>
      </li>
      
        <ul>
          <li class="collapse show" id="service-meshes">
              <ul class="td-sidebar-nav__section pr-md-3">
                
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/service-meshes/adapters/app-mesh" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">App Mesh</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/service-meshes/adapters/cpx" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Citrix Service Mesh</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/service-meshes/adapters/cilium" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Cilium Service Mesh</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/service-meshes/adapters/consul" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Consul</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/service-meshes/adapters/istio" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Istio</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/service-meshes/adapters/kuma" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Kuma</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/service-meshes/adapters/linkerd" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Linkerd</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/service-meshes/adapters/nsm" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Network Service Mesh</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/service-meshes/adapters/nginx-sm" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">NGINX Service Mesh</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/service-meshes/adapters/osm" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Open Service Mesh</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/service-meshes/adapters/tanzu-sm" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Tanzu</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/service-meshes/adapters/traefik-mesh" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Traefik Mesh</a>
                </li>
                
              
            </ul>
        </ul>  
          
    </ul>
    
    <ul class="td-sidebar-nav__section pr-md-3">
      
      
      <li class="td-sidebar-nav__section-title">
        <a  href="/v0.5/guides" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">📚 Guides</a>
      </li>
      
        <ul>
          <li class="collapse show" id="guides">
              <ul class="td-sidebar-nav__section pr-md-3">
                
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/guides/sample-apps" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Deploying Sample Applications</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/guides/smi-conformance" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Running SMI Conformance Tests</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/guides/meshery-metrics" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Integrating Prometheus and Grafana</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/guides/troubleshooting" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Troubleshooting Guide</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/guides/upgrade" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Upgrading Meshery</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/guides/mesheryctl" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Using mesheryctl ↆ</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/guides/multiple-adapters" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Using Multiple Meshery Adapters</a>
                </li>
                
              
            </ul>
        </ul>  
          
    </ul>
    
    <ul class="td-sidebar-nav__section pr-md-3">
      
      
      <li class="td-sidebar-nav__section-title">
        <a  href="/v0.5/extensibility" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">🛠 Extensibility</a>
      </li>
      
        <ul>
          <li class="collapse show" id="extensibility">
              <ul class="td-sidebar-nav__section pr-md-3">
                
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/extensibility/adapters" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Adapters</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/extensibility/load-generators" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Load Generators</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/extensibility/providers" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Providers</a>
                </li>
                
                <ul>
                  <li class="collapse show" id="">
                    
                  </li>
                </ul>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/extensibility/api" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">REST & GraphQL APIs</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/extensibility/ui" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">UI Plugins</a>
                </li>
                
              
            </ul>
        </ul>  
          
    </ul>
    
    <ul class="td-sidebar-nav__section pr-md-3">
      
      
      <li class="td-sidebar-nav__section-title">
        <a  href="/v0.5/reference" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">📖 Reference</a>
      </li>
      
        <ul>
          <li class="collapse show" id="reference">
              <ul class="td-sidebar-nav__section pr-md-3">
                
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/reference/mesheryctl" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Meshery CLI</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/reference/error-codes" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Error Codes</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/reference/graphql-apis" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">GraphQL API Reference</a>
                </li>
                
              
                <li class="td-sidebar-nav__section-title">
                  <a href="/v0.5/reference/rest-apis" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">REST API Reference</a>
                </li>
                
              
            </ul>
        </ul>  
          
    </ul>
    
    </nav>
  </div>
          </div>
          <div class="d-none d-xl-block col-xl-2 td-toc d-print-none">
              <div class="td-page-meta ml-2 pb-1 pt-2 mb-0">
                  <strong>Tools</strong>
<a href="https://github.com/meshery/meshery/issues/new?assignees=&labels=area%2Fdocs%2C+framework%2Fjekyll&template=documentation.md&title=%5BDocs%5D" rel="noopener" target="_blank"><i class="fab fa-github fa-fw"></i> Create doc issue</a>
<a href="https://github.com/meshery/meshery/blob/master/docs/pages/es/extensibility/providers.md" rel="noopener" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<strong>Contents</strong>


<!-- this will parse through the header fields and add a button to open
     an issue / ask a question on Github. The editable field should be in
     the post frontend matter, and refer to the label to open the issue for -->
     

              </div>
              <nav id="TableOfContents"><ul>
              <li><ul id="TOC">
                <!-- Links will be appended here-->
              </ul></li>
              </ul></nav>
          </div>
          <main class="col-12 col-md-9 col-xl-8 pl-md-5" role="main">
            <nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
	      <ol class="breadcrumb spb-1">
                <li class="breadcrumb-item active" aria-current="page">
      <!-- meshery-custom-begin -->
        <div id="breadcrumbs">

<a href="/v0.5/">home</a>

  
    / <a href="/v0.5/es/">es</a> 
  

  
    / <a href="/v0.5/es/extensibility/">extensibility</a> 
  

  
    / extensibilidad: proveedores
  

</div>

<!-- <a href="http://idratherbewriting.com" class="noCrossRef productSubtitle"> Home </a> > <a class="noCrossRef productSubtitle" href="http://localhost:4000">Learn API Doc</a> > providers -->

	      <!-- <a href="/v0.5/es/extensibility/providers">Extensibilidad: Proveedores</a> -->
		  <!-- meshery-custom-end -->
                </li>
	      </ol>
           </nav>
           <div class="td-content">
            
            <h1>Extensibilidad: Proveedores</h1>
            
	           <p>Meshery ofrece a los proveedores como un punto de extensibilidad. Con un proveedor local integrado (llamado “None”), los proveedores remotos de Meshery están diseñados para ser conectables. Los proveedores remotos ofrecen puntos de extensión a los usuarios / integradores para ofrecer una funcionalidad mejorada, utilizando Meshery como plataforma.</p>

<ol>
  <li><strong>Los puntos de extensibilidad ofrecen una separación clara de las capacidades de código abierto y cerrado.</strong>
    <ul>
      <li>Meshmap es un ejemplo de una función que se entregará a través de un proveedor remoto.</li>
    </ul>
  </li>
  <li><strong>Los Proveedores Remotos deben poder ofrecer RBAC personalizado, componentes de Interfaz de Usuario (UI) personalizados y componentes de backend personalizados</strong>
    <ul>
      <li>Es necesario identificar o crear marcos cargables dinámicamente para cumplir con cada uno de estos propósitos.</li>
    </ul>
  </li>
</ol>

<h3 id="principios-de-diseño-marco-de-proveedor-remoto-de-meshery">Principios de diseño: marco de proveedor remoto de Meshery</h3>

<p>El marco de extensibilidad del proveedor remoto de Meshery está diseñado para permitir:</p>

<ol>
  <li>
    <p><strong>Funcionalidad de interfaz de usuario conectable:</strong></p>

    <ul>
      <li>Componentes de interfaz de usuario personalizados fuera del árbol con una experiencia de usuario perfecta.</li>
      <li>Un sistema de recuperación remota de paquetes de extensión (componentes ReactJS y binarios Golang).</li>
    </ul>
  </li>
  <li>
    <p><strong>Funcionalidad backend conectable:</strong></p>

    <ul>
      <li>Los proveedores remotos tienen una cantidad de capacidades desconocidas para Meshery.</li>
    </ul>
  </li>
  <li>
    <p><strong>AuthZ Conectable</strong></p>
    <ul>
      <li>Diseñe un sistema de control de acceso extensible basado en roles de modo que los proveedores remotos puedan determinar su propio conjunto de controles. Proveedores remotos para devolver JWT con roles personalizados, claves de permisos y llaveros de permisos.</li>
    </ul>
  </li>
</ol>

<p><img src="/v0.5/assets/img/providers/provider_screenshot.png" alt="Proveedoress" /></p>

<h3 id="qué-funcionalidad-realizan-los-proveedores">¿Qué funcionalidad realizan los proveedores?</h3>

<p>Lo que ofrece un proveedor remoto determinado puede variar ampliamente entre proveedores. Meshery ofrece puntos de extensión que los proveedores remotos pueden usar para inyectar diferentes funcionalidades, una funcionalidad específica para ese proveedor.</p>

<ul>
  <li><strong>Autenticación and Autorización</strong>
    <ul>
      <li>Ejemplos: gestión de sesiones, autenticación de dos factores, integración LDAP.</li>
    </ul>
  </li>
  <li><strong>Persistencia a Largo Plazo</strong>
    <ul>
      <li>Ejemplos: almacenamiento y recuperación de resultados de pruebas de rendimiento.</li>
      <li>Ejemplos: almacenamiento y recuperación de las preferencias del usuario.</li>
    </ul>
  </li>
  <li><strong>Visualización Mejorada</strong>
    <ul>
      <li>Examples: Creation of a visual service mesh topology.</li>
      <li>Examples: Different charts (metrics), debug (log viewer), distributed trace explorers.</li>
    </ul>
  </li>
  <li><strong>Reporteo</strong>
    <ul>
      <li>Ejemplos: usar el servidor GraphQL de Meshery para crear nuevos paneles.</li>
    </ul>
  </li>
</ul>

<h2 id="typos-of-proveedores">Typos of proveedores</h2>

<p>En Meshery se definen dos tipos de proveedores: <code class="language-plaintext highlighter-rouge">local</code> y <code class="language-plaintext highlighter-rouge">remoto</code>. El proveedor local está integrado en Meshery. Los proveedores remotos pueden ser implementados por cualquier persona u organización que desee integrarse con Meshery. Cualquier número de proveedores remotos puede estar disponible en su implementación de Meshery.</p>

<h3 id="proveedores-remotos">Proveedores Remotos</h3>

<p>El uso de un proveedor remoto pone a Meshery en modo multiusuario y requiere autenticación de usuario. Utilice un proveedor remoto cuando su uso de Meshery sea continuo o se utilice en un entorno de equipo (utilizado por varias personas).</p>

<p>Nombre: <strong>“Meshery”</strong> (default)</p>

<ul>
  <li>Refuerza la autenticación del usuario.</li>
  <li>Persistencia a largo plazo de los resultados de las pruebas.</li>
  <li>Guarde la configuración del entorno.</li>
  <li>Recupere los resultados de las pruebas de rendimiento.</li>
  <li>Recuperar los resultados de las pruebas de conformidad.</li>
  <li>De uso gratuito.</li>
</ul>

<h3 id="proveedor-local">Proveedor Local</h3>

<p>El uso del proveedor local, “None”, pone a Meshery en modo de usuario único y no requiere autenticación. Utilice el proveedor local cuando su uso de Meshery esté destinado a ser de corta duración.</p>

<p>Nombre: <strong>“None”</strong></p>

<ul>
  <li>Sin autenticación de usuario.</li>
  <li>Almacenamiento en contenedor de los resultados de las pruebas. Efímero.</li>
  <li>Configuración del entorno no guardada.</li>
  <li>Sin historial de resultados de pruebas de rendimiento.</li>
  <li>Sin historial de resultados de pruebas de conformidad.</li>
  <li>De uso gratuito.</li>
</ul>

<h2 id="construyendo-un-proveedor">Construyendo un Proveedor</h2>

<p>Meshery interactúa con los proveedores a través de una interfaz Go. Las implementaciones del proveedor deben colocarse en el código y compilarse juntas hoy. Deberá inyectarse una instancia de proveedor en Meshery cuando se inicie el programa.</p>

<p>Meshery mantiene la implementación de los proveedores remotos por separado para que se introduzcan a través de un proceso separado y se inyecten en Meshery en tiempo de ejecución (OR) y cambien la forma en que funciona el código para que los proveedores invoquen a Meshery.</p>

<h3 id="puntos-de-extensión-de-proveedor-remoto">Puntos de extensión de proveedor remoto</h3>

<p>Entretejidos en la interfaz de usuario basada en web de Meshery hay una variedad de puntos de extensión. Cada punto de extensión está cuidadosamente diseñado para ofrecer una experiencia de usuario perfecta. Cada punto de extensión se identifica con un nombre y un tipo. Los siguientes puntos de extensión de la interfaz de usuario de Meshery están disponibles:</p>

<ul>
  <li><strong>Nombre:</strong> navigator
<strong>Tipo:</strong> Elementos de Menú
<strong>Descripción:</strong> Se supone que es una extensión de página completa que obtendrá un punto final dedicado en la interfaz de usuario de meshery. Y aparecerá en la barra lateral / navegador de la interfaz de usuario de Meshery. Los elementos del menú pueden referirse a extensiones de página completa.</li>
</ul>

<p><strong>Name:</strong> user_prefs
<strong>Type:</strong> Componente Único
<strong>Description:</strong> Se supone que son componentes de reacción remota que se colocarán en una página preexistente y no tendrán un punto final dedicado. A partir de ahora, el único lugar donde se puede cargar esta extensión es la sección “Preferencias del usuario” en la configuración de malla.</p>

<p><strong>Name:</strong> /extension/<su nombre="" aquí="">
**Type:** Página Completa
Description:</su></p>

<p>El paquete Provider se descomprime en el sistema de archivos del servidor Meshery en <code class="language-plaintext highlighter-rouge">/app/provider-pkg/&lt;package-name&gt;</code>.</p>

<p>Los proveedores remotos deben cumplir con los siguientes puntos finales:</p>

<ol>
  <li><code class="language-plaintext highlighter-rouge">/login</code> - regresa token válido</li>
  <li><code class="language-plaintext highlighter-rouge">/logout</code> - invalida el token</li>
  <li><code class="language-plaintext highlighter-rouge">/capabilities</code> - regresa capabilities.json</li>
</ol>

<h2 id="puntos-de-extensión-de-la-interfaz-de-usuario">Puntos de extensión de la interfaz de usuario</h2>

<p>Todas las extensiones de la interfaz de usuario se alojarán en el punto final. &lt;servidormeshery:puerto/proveedor&gt;</p>

<h3 id="userprefs">UserPrefs</h3>

<p>El punto de extensión UserPrefs espera y carga un componente para que se muestre en la página /userpreferences.</p>

<h3 id="navigator">Navigator</h3>

<p>El punto de extensión Navigator carga un conjunto de elementos de menú que se mostrarán en la barra de menú en el lado izquierdo de la interfaz de usuario de Meshery.</p>

<h2 id="ejemplo-de-punto-final-de-capacidades">Ejemplo de Punto Final de Capacidades</h2>

<p>Meshery Seerver enviará todas las solicitudes a los puntos finales del proveedor remoto. Los endpoints (puntos finales) se determinan e identifican dinámicamente en la sección “capacidades” del punto final <code class="language-plaintext highlighter-rouge">/capabilities</code>. Los proveedores como objeto tienen los siguientes atributos (esto debe devolverse como una respuesta al endpoint <code class="language-plaintext highlighter-rouge">/capabilities</code>):</p>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"provider_type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"remote"</span><span class="p">,</span><span class="w">
  </span><span class="nl">"package_version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"v0.1.0"</span><span class="p">,</span><span class="w">
  </span><span class="nl">"package_url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://layer5labs.github.io/meshery-extensions-packages/provider.tar.gz"</span><span class="p">,</span><span class="w">
  </span><span class="nl">"provider_name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Meshery"</span><span class="p">,</span><span class="w">
  </span><span class="nl">"provider_description"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
    </span><span class="s2">"Persistent sessions"</span><span class="p">,</span><span class="w">
    </span><span class="s2">"Save environment setup"</span><span class="p">,</span><span class="w">
    </span><span class="s2">"Retrieve performance test results"</span><span class="p">,</span><span class="w">
    </span><span class="s2">"Free use"</span><span class="w">
  </span><span class="p">],</span><span class="w">
  </span><span class="nl">"extensions"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="nl">"navigator"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
      </span><span class="p">{</span><span class="w">
        </span><span class="nl">"title"</span><span class="p">:</span><span class="w"> </span><span class="s2">"MeshMap"</span><span class="p">,</span><span class="w">
        </span><span class="nl">"href"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
          </span><span class="nl">"uri"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/meshmap"</span><span class="p">,</span><span class="w">
          </span><span class="nl">"external"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
        </span><span class="p">},</span><span class="w">
        </span><span class="nl">"component"</span><span class="p">:</span><span class="w"> </span><span class="s2">"provider/navigator/meshmap/index.js"</span><span class="p">,</span><span class="w">
        </span><span class="nl">"icon"</span><span class="p">:</span><span class="w"> </span><span class="s2">"provider/navigator/img/meshmap-icon.svg"</span><span class="p">,</span><span class="w">
        </span><span class="nl">"link:"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
        </span><span class="nl">"show"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
        </span><span class="nl">"children"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
          </span><span class="p">{</span><span class="w">
            </span><span class="nl">"title"</span><span class="p">:</span><span class="w"> </span><span class="s2">"View: Single Mesh"</span><span class="p">,</span><span class="w">
            </span><span class="nl">"href"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
              </span><span class="nl">"uri"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/meshmap/mesh/all"</span><span class="p">,</span><span class="w">
              </span><span class="nl">"external"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
            </span><span class="p">},</span><span class="w">
            </span><span class="nl">"component"</span><span class="p">:</span><span class="w"> </span><span class="s2">"navigator/meshmap/index.js"</span><span class="p">,</span><span class="w">
            </span><span class="nl">"icon"</span><span class="p">:</span><span class="w"> </span><span class="s2">"navigator/img/singlemesh-icon.svg"</span><span class="p">,</span><span class="w">
            </span><span class="nl">"link"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
            </span><span class="nl">"show"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
          </span><span class="p">}</span><span class="w">
        </span><span class="p">]</span><span class="w">
      </span><span class="p">}</span><span class="w">
    </span><span class="p">],</span><span class="w">
    </span><span class="nl">"user_prefs"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
      </span><span class="p">{</span><span class="w">
        </span><span class="nl">"component"</span><span class="p">:</span><span class="w"> </span><span class="s2">"userprefs/meshmap-preferences.js"</span><span class="w">
      </span><span class="p">}</span><span class="w">
    </span><span class="p">]</span><span class="w">
  </span><span class="p">},</span><span class="w">
  </span><span class="nl">"capabilities"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
    </span><span class="p">{</span><span class="w"> </span><span class="nl">"feature"</span><span class="p">:</span><span class="w"> </span><span class="s2">"sync-prefs"</span><span class="p">,</span><span class="w"> </span><span class="nl">"endpoint"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/user/preferences"</span><span class="w"> </span><span class="p">},</span><span class="w">
    </span><span class="p">{</span><span class="w"> </span><span class="nl">"feature"</span><span class="p">:</span><span class="w"> </span><span class="s2">"persist-results"</span><span class="p">,</span><span class="w"> </span><span class="nl">"endpoint"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/results"</span><span class="w"> </span><span class="p">},</span><span class="w">
    </span><span class="p">{</span><span class="w"> </span><span class="nl">"feature"</span><span class="p">:</span><span class="w"> </span><span class="s2">"persist-result"</span><span class="p">,</span><span class="w"> </span><span class="nl">"endpoint"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/result"</span><span class="w"> </span><span class="p">},</span><span class="w">
    </span><span class="p">{</span><span class="w"> </span><span class="nl">"feature"</span><span class="p">:</span><span class="w"> </span><span class="s2">"persist-smi-results"</span><span class="p">,</span><span class="w"> </span><span class="nl">"endpoint"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/smi/results"</span><span class="w"> </span><span class="p">},</span><span class="w">
    </span><span class="p">{</span><span class="w"> </span><span class="nl">"feature"</span><span class="p">:</span><span class="w"> </span><span class="s2">"persist-metrics"</span><span class="p">,</span><span class="w"> </span><span class="nl">"endpoint"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/result/metrics"</span><span class="w"> </span><span class="p">},</span><span class="w">
    </span><span class="p">{</span><span class="w"> </span><span class="nl">"feature"</span><span class="p">:</span><span class="w"> </span><span class="s2">"persist-smp-test-profile"</span><span class="p">,</span><span class="w"> </span><span class="nl">"endpoint"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/user/test-config"</span><span class="w"> </span><span class="p">}</span><span class="w">
  </span><span class="p">]</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<p>Meshery le permite, como propietario de la malla de servicios, personalizar la implementación de su malla de servicios.</p>

<h2 id="administrar-su-código-de-extensión-de-proveedor-remoto">Administrar su Código de Extensión de Proveedor Remoto</h2>

<p>Las extensiones de proveedor remoto se mantienen fuera del árbol de Meshery (servidor e interfaz de usuario). Es posible que deba crear sus extensiones en el mismo entorno y conjunto de dependencias que Meshery. El marco de extensibilidad de Meshery se ha diseñado de manera que las extensiones en el árbol se pueden evitar de forma segura y, al mismo tiempo, proporcionar una plataforma sólida desde la que extender la funcionalidad de Meshery. A menudo, aquí se encuentra la delimitación de la funcionalidad abierta frente a la cerrada dentro de Meshery. Los proveedores remotos pueden traer (complemento) qué funcionalidad desean detrás de esta interfaz extensible (más sobre la extensibilidad de Meshery), al menos hasta el punto en que Meshery ha proporcionado una forma de conectar esa característica.</p>

<p>Ofrecer soporte fuera del árbol para extensiones de Meshery significa que:</p>

<ol>
  <li>No es necesario que el código fuente de las extensiones de Meshery sea de código abierto,</li>
  <li>La responsabilidad por la estabilidad de Meshery se reduce significativamente, evitando errores potenciales en componentes extendidos.</li>
</ol>

<p>A través de puntos de extensión claramente definidos, las extensiones de Meshery pueden ofrecerse como capacidades de código cerrado que se conectan al código de Meshery de código abierto. Para facilitar la integración de sus extensiones de Meshery, puede automatizar la construcción y liberación de sus repositorios de código separados pero interdependientes. Usted será responsable de mantener sus extensiones basadas en ReactJS y Golang.</p>
	
              
              <br/>


           </div>
          </main>
        </div>
      </div>
      <footer class="footer bg-dark py-3 row d-print-none">
  <div class="container-fluid mx-sm-5">
    <div class="row">
<!-- meshery-custom-begin"
      <div class="col-6 col-sm-4 text-xs-center order-sm-2">

<ul class="list-inline mb-0">
  <li class="list-inline-item mx-2 h3" data-toggle="tooltip" data-placement="top" title="" aria-label="Twitter" data-original-title="Twitter">
    <a class="text-white" target="_blank" href="https://twitter.com/layer5">
      <i class="fab fa-twitter"></i>
    </a>
  </li>
</ul>
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
<ul class="list-inline mb-0">
  <li class="list-inline-item mx-2 h3" data-toggle="tooltip" data-placement="top" title="" aria-label="GitHub" data-original-title="GitHub">
    <a class="text-white" target="_blank" href="https://github.com/meshery/meshery">
      <i class="fab fa-github"></i>
    </a>
  </li>
</ul>
meshery-custom-end -->

<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
  <div class="text-white">&copy; 2022 The Meshery Authors</div>
  

  <!-- meshery-custom-begin -->

  <p class="mt-2">

  <div class="footer-icons-list">
    <div class="footer-icons">
      <a class="social__link social__link--forum" href="https://meshery.io/community/#discussion-forums" target="_blank" rel="noreferrer">
        <img height="30px" src="" alt="forum">
        <span class="footer-icons-text">Meshery discussion forum</span>
      </a>
    </div>

    <div class="footer-icons">
      <a class="social__link social__link--mail" href="mailto:community@layer5.io" target="_blank" rel="noreferrer">
        <img height="30px" width="30px" src="" alt="mail">
        <span class="footer-icons-text">Get connected with the Meshery community</span>
      </a>
    </div>

    <div class="footer-icons">
      <a class="social__link social__link--slack" href="https://slack.meshery.io/" target="_blank" rel="noreferrer">
        <img class="slack" height="30px" width="30px" src="" alt="slack">
        <span class="footer-icons-text">Join the Meshery Slack</span>
      </a>
    </div>

    <div class="footer-icons">
      <a class="social__link--calendar" href="https://bit.ly/2SbrRhe">
        <svg xmlns="http://www.w3.org/2000/svg" width="30px" height="30px" viewBox="0 0 18 18" xmlns:v="https://vecta.io/nano"><path d="M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z"/><g stroke-linecap="undefined" stroke-linejoin="undefined"><path d="M-3.468 8.168h-.033m25.313-4.242l-.063-.254M7.858 4.814v9.387"/><path d="M1.833 9.507h12.051"/></g></svg>
        <span class="footer-icons-text">Subscribe to the community calender</span>
      </a>
  </div>

   <div class="footer-icons">
      <a class="social__link social__link--twitter" href="https://twitter.com/layer5" target="_blank" rel="noreferrer">
        <img class="twitter" height="30px" width="30px" src="" alt="twitter">
        <span class="footer-icons-text">Follow Meshery on Twitter</span>
      </a>
    </div>

    <div class="footer-icons">
      <a class="social__link" href="https://github.com/layer5io" target="_blank" rel="noreferrer">
        <img height="30px" width="30px" class="github" src="" alt="github">
        <span class="footer-icons-text">Contribute to Meshery projects</span>
      </a>
    </div>

    <div class="footer-icons">
      <a class="social__link social__link--linkedin" href="https://www.linkedin.com/company/layer5" target="_blank" rel="noreferrer">
        <img class="linkedin" height="30px" width="30px" src="" alt="linkedin">
        <span class="footer-icons-text">Connect to Meshery on Linkedin</span>
      </a>
    </div>

    <div class="footer-icons">
      <a class="social__link social__link--youtube" href="https://www.youtube.com/mesheryio?sub_confirmation=1" target="_blank" rel="noreferrer">
        <img class="youtube" height="30px" width="30px" src="" alt="youtube">
        <span class="footer-icons-text">Watch community meeting recordings</span>
      </a>
    </div>

    <div class="footer-icons">
      <a class="social__link social__link--docker" href="https://hub.docker.com/u/meshery/" target="_blank" rel="noreferrer">
        <img class="docker" height="30px" width="30px" src="" alt="docker">
        <span class="footer-icons-text">Access Docker images for Meshery projects</span>
      </a>
    </div>
  </div>
    </p>
  <!-- meshery-custom-end -->
      </div>
    </div>
  </div>
</footer>

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/clipboard@1/dist/clipboard.min.js"></script>

<script type="text/javascript" src="/v0.5/assets/js/lightbox.js"></script>
<link rel="stylesheet" href="/v0.5/assets/css/lightbox.css">

    </div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/v0.5/assets/js/main.js"></script>

    <script async src='https://www.google-analytics.com/analytics.js'></script>
<script type="application/javascript">
var doNotTrack = false;
if (!doNotTrack) {
	window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
	ga('create', 'UA-00000000-0', 'auto');
	ga('send', 'pageview');
}
</script>

  </body>
</html>
<script
  src="https://code.jquery.com/jquery-3.3.1.min.js"
  integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
  crossorigin="anonymous"></script>

<script>
$(document).ready(function() {

    var toc = $('#TOC');

    // Select each header
    sections = $('.td-content h1');
        $.each(sections, function(idx, v) {
            section = $(v);
            var div_id = $(section).attr('id');
            if(!section.hasClass('noTOC')){
               var div_text = section.text().split('¶')[0];
              var parent = $("#" + div_id)
              var content = '<li id="link_' + div_id + '" class="md-nav__item"><a class="md-nav__link" href="#' + div_id + '" title="' + div_text +'">' + div_text +'</a></li>';
              $(toc).append(content);
            }

            // Add section code to subnavigation
            var children = $('<nav class="md-nav"><ul class="md-nav__list"></nav></ul>')
            var contenders = $("#" + div_id).nextUntil("h1");
            $.each(contenders, function(idx, contender){
               if( !$(contender).hasClass("noTOC") && ($(contender).is('h2') || $(contender).is('h3')) ) {
                   var contender_id = $(contender).attr('id');
                   var contender_text = $(contender).text().split('¶')[0];
                   var content = '<li class="md-nav__item"><a class="md-nav__link" href="#' + contender_id + '" title="' + contender_text +'">' + contender_text +'</a></li>';
                   children.append(content);
                }
             })
             $("#link_" + div_id).append(children);
        });
        //added 'selected' tag to the first element of toc
        $('.md-nav__link').first().addClass('selected');

        $(window).scroll(function(e){
          // Detect how far are we from the top of the page
          let windowTop = $(this).scrollTop();
          // Loop through every navigation menu item
          $('.md-nav__link').each(function (event) {       
              if (windowTop >= $($(this).attr('href')).offset().top - 100) {
              // Remove 'selected' from previously highlighted menu items
              $('.selected').removeClass('selected');
              // Highlight the current menu item by adding 'selected' class
              $(this).addClass('selected');
          }
          if($(window).scrollTop() + $(window).height() > $(document).height() - 10) {
            $('.selected').removeClass('selected');
              $(this).addClass('selected');
   }
        });
      })
    });
</script>